home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
MiscKit1.7.1
/
MiscKit
/
Source
/
MiscGISKit
/
MiscUKUTMCoord.m
< prev
next >
Wrap
Text File
|
1995-07-20
|
2KB
|
78 lines
/*============================= MiscUKUTMCoord.m ============================*/
/* MiscUKUTMCoord class contains and supports values representing locations
in the UK National Grid Universal Transverse Mercator coordinate system
as of March 1983.
DMA Release 0.8, Copyright @1993 by Genesis Project, Ltd. All Rights
Reserved. For further information on terms and conditions see:
Documentation/GISKit/Agreements-Legal-README
HISTORY
26-Mar-93 Dale Amon at GPL
Created.
*/
#import <misckit/miscgiskit.h>
@implementation MiscUKUTMCoord
/*===========================================================================*/
/* Internal methods */
/*===========================================================================*/
static id theUKGrid = nil;
+ makeGrid
{
if (!theUKGrid)
{theUKGrid = [[MiscUTMConstants allocFromZone: [self zone]]
initGridName: "UK National Grid"
trueOrigin: 49.0 : -2.0
inGrid: 400000.0 : -100000.0
onSphere: 6377563.396 : 6356256.910
centralMeridianScaling: 0.9996012717];
[theUKGrid setProtected];
}
return theUKGrid;
}
/*===========================================================================*/
/* Initialization methods. If we don't already have a UTM constants object
for the UK National Grid, create one instance that all will share and that
cannot be deleted.
Constants are from the UK Ordinance Survey document, "Transverse Mercator
Projection, Constants, Formula and Methods", March 1983
*/
/*===========================================================================*/
/* DESIGNATED INITIALIZER */
-initDescription: (char *) txt
{return [super initDescription: txt constants: [MiscUKUTMCoord makeGrid]];}
/*---------------------------------------------------------------------------*/
/* Block the designated initializer of our parent class */
-initDescription: (char *) txt constants: anObject
{ [self error:" %s class should not be sent '%s' messages\n",
[[self class] name], sel_getName(_cmd)];
return self;
}
/*===========================================================================*/
/* Archive methods */
/*===========================================================================*/
- awake
{ [super awake];
[constants setUnprotected];
[constants free];
[MiscUKUTMCoord makeGrid];
return self;
}
@end